1. Field of the Invention
The present invention relates to computer processor implemented transaction processing systems. More particularly, the present invention relates to transaction control mechanisms for ensuring the reliability and integrity of transactions processed in an on-line transaction processing system. Still more particularly, the present invention relates to transaction processing over the Internet using Internet browsers and Internet servers to process on-line transactions.
2. Background and Related Art
Computer implemented transaction processing systems are used to manage information collected and used by businesses worldwide. Historically, transaction processing has been used by banks and airlines to handle customer transactions. In both of these industries, the accuracy of the data is a prime concern. Transaction processing systems have been designed to ensure that data is properly updated and that any failure of the system is handled in a predictable and recoverable manner.
The widespread implementation of Internet technology has created a demand to enable consumers to directly enter transactions with their banks and to make reservations with travel companies. Implementation of client driven transaction processing systems must meet the high data integrity requirements consumers expect. For example, consumer use of an Internet banking program to transfer funds must result in the funds either being fully transferred into the correct account, or the transaction being terminated with a reported error.
The problem of duplicate transaction entry is of particular interest The processing system must ensure that a specific transaction is processed once and only once. Unfortunately, Internet browser technology makes duplicate transaction entry relatively common. Internet browsers have been developed to access and view data over the worldwide web. Viewing and even non-financial data entry are usually not harmed by duplicate transaction submissions. Financial transactions cannot tolerate duplicate entries.
Duplicate transactions occur, in part, because of the stateless nature of browser/server applications. The server supplies a "web page" to the client browser for action by the user. The prior art servers do not retain any state information about the form supplied. When the browser submits the form, it is acted upon by the server, again without monitoring the previous state of the application. The user can cause the same form to be submitted a second time without the server detecting the duplication.
Browser technology allows the following types of duplicate transaction entries to occur. Note that the `enter` button in the following items denotes the page element that the user clicks on to submit a transaction. It could be a form submit button, a form image button, or an HREF.
1. Enter-Back-Enter The user submits a transaction by clicking on an enter button. The user sees the response. Later the user uses the browser's `back` button to back up into the previously submitted transaction and clicks on enter again
2. Enter-Reload: Here the user submits a transaction by clicking on an enter button. The user sees the response and then clicks on the browser `reload` button (called `refresh` in the Internet Explorer browser). Clicking the reload button causes the transaction to be sent to the web server a second time.
3. Enter-Stop-Enter: The user submits a transaction by clicking on an enter button. While waiting for the response the user clicks the browser `stop` button and the clicks the enter button again. Clicking the enter button the second time submits the transaction to the web server a second time.
4. Multiple-Clicks: If a user clicks multiple times on an enter button, browsers may submit multiple identical transactions to the web server. The behavior of the browsers differs based upon which browser is used (Netscape Navigator is different than Microsoft Internet Explorer), the HTML type of the enter button, and how many clicks were entered.
5. Resize: Resizing the browser window may, in some instances, cause the browser to reload the transaction in the browser window.
Each of these situations results in an undesirable duplication of transaction processing. A technical problem therefore exists to prevent duplicate transaction processing in a browser/server environment.